import { defineStore } from 'pinia'
import { AppSettings } from '../types/setting'

export const useSettingStore = defineStore('setting', {
  state: (): { 
    settings: AppSettings
  } => ({
    settings: {
      profile: {
        username: '',
        avatar: ''
      },
      general: {
        autoStart: false,         // 默认：不开机自启
        exitOnClose: true,        // 默认：关闭窗口退出程序
        awayOnTop: false,         // 默认：不始终置顶
        savePath: ''              // 初始化为空，将在初始化时动态设置
      }
    }
  }),
  
  actions: {
    // 初始化或获取设置（从持久化存储）
    async initSettings() {
      try {
        // 动态获取安装路径下的 iBear 文件夹
        const defaultSavePath = await window.api.getStoragePath();
        console.log('默认保存路径:', defaultSavePath);
        // 如果持久化数据中没有 savePath，使用动态获取的路径
        console.log('当前的路径是:', this.settings.general.savePath);
        // 如果当前已经有设置了保存路径，则不再覆盖它。否则，使用默认路径更新设置。
        if (this.settings.general.savePath) {
          return;
        }else {
          this.settings.general.savePath = defaultSavePath;
        }
      } catch (error) {
        console.error('初始化设置失败:', error)
        // 降级方案：使用硬编码路径作为备选
        this.settings.general.savePath = 'C:\\Program Files (x86)\\iBear';
      }
    },
    
    // 更新设置并持久化
    updateSettings(newSettings: AppSettings) {
      this.settings = { ...newSettings }
      // 持久化插件会自动保存
    }
  },
  
  // 启用持久化
  persist: true
})